//
//  main.m
//  匿名对象
//
//  Created by 许文娟 on 2024/3/13.
//

#import <Foundation/Foundation.h>
#import "Person.h"
#import "Iphone.h"

int main(int argc, const char * argv[]) {
    //匿名对象就是没有名字的对象
//    1、有名字的对象
    Person * p = [Person new];
    p->_age = 30;
    p->_name = @"qaz";
    [p say];
//    2、没有名字的对象
    //无论有没有名字，只要调用啦new就会返回对象的地址
    //每次new都会开辟一块存储空间
    [Person new]->_age = 30;
    [Person new]->_name = @"AAA";
    [[Person new] say];
    //创建了三个存储空间
    
    //匿名对象的应用场景
    //1、当对象只需要使用一次的时候就可以使用匿名对象
    Iphone *phone = [Iphone new];
    [phone brand];
    
    [[Iphone new] brand];
    //2、匿名对象可以作为方法的参考（实参）
    Person *p1 = [Person new];
//    Iphone *phone1 = [Iphone new];
//    [p1 signal:phone1];
    [p1 signal:[Iphone new]];
    return 0;
}
